home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1997 May / PC Plus Super CD Issue 127 (May 1997).iso / delphi2 / delphite.exe / _ISTMP0.DIR / MANUALS.TXT < prev    next >
Encoding:
Text File  |  1996-08-12  |  24.2 KB  |  515 lines

  1.                         ===========
  2.                         MANUALS.TXT
  3.                         ===========
  4.  
  5. This file contains last minute updates and corrections to the Delphi 2.0 documentation and online Help.
  6.  
  7. CONTENTS:
  8.  
  9. 1. ONLINE TEXT FILES
  10.  
  11. This section lists the online text files provided with Delphi 2.0,   
  12. describes where they reside, and what they contain. All file locations are relative to a default installation path.
  13.  
  14.  
  15. 2. DOCUMENTATION
  16.  
  17. This section lists updates and corrections to the printed manuals for    
  18. Delphi 2.0. Not all versions of Delphi come with all books.
  19.  
  20.  
  21.  
  22. Delphi Desktop books:
  23. ---------------------
  24.    Getting Started
  25.    User's Guide
  26.    Component Writer's Guide
  27.    Database Application Developer's Guide
  28.    Object Pascal Language Guide
  29.  
  30. Additional books for Delphi Developer and Delphi Client/Server Suite
  31. --------------------------------------------------------------------
  32.    Library Reference 
  33.    Getting Started, Borland InterBase for Windows NT and Windows 95
  34.    Data Definition Guide, Borland InterBase 
  35.    Language Reference, Borland InterBase 
  36.    Getting Started, Borland SQL Links (Delphi Client/Server Suite only)
  37.  
  38.  
  39. 3. ONLINE HELP
  40.  
  41. This section lists the online help files provided with Delphi 2.0, 
  42. describes where they reside, and what they contain.
  43.  
  44. 4. DOCUMENTATION OMISSIONS
  45.  
  46. This section lists known errors of omission in the VCL.HLP and lists 
  47. alternative sources of information when available.
  48.  
  49. ========================================================================
  50. 1. ONLINE TEXT FILES
  51.  
  52.    The following online text files provide additional documentation for
  53.    Delphi. All file locations are relative to a default installation
  54.    path.
  55.  
  56.      INSTALL.TXT  - Located in \DELPHI 2.0, contains information on
  57.                     troubleshooting installation and
  58.                     configuration problems.
  59.      README.TXT   - Located in \DELPHI 2.0, includes late-breaking
  60.                     information, compatibility notes, and information
  61.                     on how to get help from Borland.
  62.      READDBD.TXT  - Located in \DBD, README for the Database
  63.                     Desktop.
  64.      DEPLOY.TXT   - Located in \DELPHI 2.0, contains important
  65.                     information about licensing and
  66.                     redistribution of Delphi, ReportSmith,
  67.                     and InterBase applications.
  68.      MANUALS.TXT  - This file.
  69.  
  70. The following files provide additional documentation for Delphi 
  71. Developer and Delphi Client/Server Suite. All file locations are relative to a default installation path.
  72.  
  73.      READLINK.TXT - Located in \Borland\Common Files\BDE, README for the
  74.                     Borland Database Engine.
  75.      READRS.TXT   - Located in \RPTSMITH, README for ReportSmith.
  76.      READIB.TXT   - Located in \Borland\IntrBase, README for the Local
  77.                     InterBase Server.
  78.      RS_SQLIF.TXT - Located in \RPTSMITH.
  79.      TOOLINTF.PAS - Defines the Delphi Open Tools API which
  80.                     allows your custom version control .DLL or
  81.                     expert to interface with the Delphi
  82.                     environment.
  83.      VCSINTF.PAS  - Defines the interface you must provide so
  84.                     Delphi can call your custom version control
  85.                     DLL's entry points.
  86.      VIRTINTF.PAS - Base classes for your custom version control
  87.                     and experts to inherit from.
  88.      EXPTINTF.PAS - Defines the interface you must provide so
  89.                     Delphi can call your expert's entry points.
  90.  
  91.  
  92. ========================================================================
  93. 2. DELPHI DOCUMENTATION
  94.  
  95. The following sections provide updates and corrections to the Delphi 
  96. documentation set. 
  97.  
  98. Getting Started
  99. ===============
  100.  
  101. The demonstration application makes use of the Object Repository. Note 
  102. that the screenshots of the repository and its user interface have been 
  103. updated somewhat since this book went to print. Correct documentation can be found in the  User's Guide, the Database Application Developer's Guide, and the online help.
  104.  
  105. Component Writer's Guide
  106. ========================
  107.  
  108. p. 36
  109. If your property type derives from TComponent, you should use the 
  110. FreeNotification method to ensure that your objects receive a call to Notification when the assigned component is destroyed. This method enables all ancestor objects to update shared properties appropriately. Even if you think you do not need to worry about shared properties, you should call FreeNotification to be safe. Calling FreeNotification adds no overhead to your application if the call is not necessary.
  111.  
  112. To prevent a component from being inherited, subtract the csInhertitable
  113. value from its FComponentStyle property when you create the component:
  114.  
  115.   FComponentStyle := FComponentStyle - [csInheritable];
  116.  
  117. For an example that demonstrates both FreeNotification and prevention of 
  118. inheritance, see \DEMOS\DEMOLBL\DEMOLBL.PAS.
  119.  
  120. User's Guide
  121. ============
  122.  
  123. p. 51
  124. You can nest forms within other forms. To nest a form, specify a form's 
  125. parent form in its Parent property.
  126.  
  127. p. 117
  128. If you build a project as a DLL that contains modeless forms,and you want to use the DLL both as a standard DLL callable from other executables and as a standalone application, you must provide two entry points for the DLL.
  129.  
  130. The entry point called by the stub .EXE that runs a DLL as a standalone executable must include a call to CreateHandle to create an application handle before it creates modeless forms and runs the application.
  131.  
  132. Applications that call the DLL must call a separate initialization entry point, and must pass an application handle into the DLL. The DLL must assign the application's handle to its own internal handle before creating modeless forms.
  133.  
  134. The Database Explorer is an example of a DLL that functions as a standalone application and a DLL used by another application (Delphi).
  135.  
  136. p. 243
  137. The String List editor, available at design time, continues to support 
  138. loading a list of strings from a file. To load a file, right click in the
  139. editor to invoke the pop up menu, and choose Load from File.
  140.  
  141. Object Pascal Language Guide
  142. ============================
  143.  
  144. p. 29
  145. The default calling convention is always register. The manual incorrectly 
  146. states that the default changes depending on the use of optimizations.
  147.  
  148. Database Application Developer's Guide
  149. ======================================
  150.  
  151. pp. 24-29
  152. If you create multi-threaded database applications, note than TDatabase 
  153. and TDataSet components are bound to their individual TSession components.
  154.  
  155. For example, you cannot use a TBatchMove component to move information 
  156. in a dataset associated with Session1 to a dataset associated with Session2.
  157.  
  158. You can, however, write application-level code to accomplish such a move. For example, you could read a record from a dataset in Session1 into standard controls, then write the information from those controls into controls associated with a dataset in Session2.
  159.  
  160. pp. 29-31
  161. Using threads with TQuery and TTable components.
  162.  
  163. Data-access components, unlike all other VCL components, can be created 
  164. and accessed within the context of threads you create. To create and 
  165. access a database component within the context of a thread:
  166.  
  167.   1. The component must have its own session.
  168.   2. The component's session can be accessed by only one thread at a
  169.      time.
  170.   3. The component's creator must be nil, or must be the owner of the
  171.      thread.
  172.  
  173. A component created in the context of one thread cannot be accessed by other threads. A component created in the context of the main VCL thread (the default thread) that is also associated with a session, however, can be accessed by one other thread at a time.
  174.  
  175. You might use this capability to open a long-running query in the background of a database application.
  176.  
  177. pp. 61-62
  178. To reference a field name that contains embedded spaces in an OnFilterRecord event handler enclose the field name in square brackets [].
  179.  
  180. pp. 65, 67
  181. The Cancel and Abort methods for a dataset are correctly documented, but 
  182. there may be some confusion about them. Cancel immediately terminates 
  183. editing or inserting of the current record. It is usually invoked by an 
  184. application user from a TDBNavigator control. Abort prevents other methods, such as Open, Insert, or Delete, from executing. Abort is usually invoked in event handlers such as BeforeOpen, BeforeInsert, or BeforeDelete.
  185.  
  186. p. 66
  187. The example code for updating a record makes a call to a non-existent method, SetRecords. SetRecords should be SetFields.
  188.  
  189. p. 85-86
  190. When creating an extended attribute set based on a TField component, set 
  191. only those properties that are to be the same for each field to which the attribute set is applied. Do not set property values that should be unique for each field, such as DisplayLabel.
  192.  
  193. p. 99
  194. The first sentence under the heading "Searching on alternative indexes" 
  195. omits a word. The corrected sentence is as follows: 
  196. "If you want to search on an index other than the primary index for a 
  197. table, then you must specify the name of the index to use in the IndexName property for the table."
  198.  
  199. p. 118
  200. The documentation incorrectly states that a live result set cannot be 
  201. returned from a SELECT statement that contains an ORDER BY clause.
  202.  
  203. p. 131
  204. The AutoSize property of a TDBText control cannot be set to True when the control is used in a TDBCtrlGrid component.
  205.  
  206. pp.136-140
  207. TDBLookupListBox and TDBLookupComboBox now have the ReadOnly property like other data-aware controls.
  208.  
  209. TDBLookupListBox and TDBLookupComboBox can display multiple columns.
  210. The ListField property is now a semicolon-separated list of field names 
  211. which specifies the columns to show in the list box. When more than one 
  212. field name is specified, the widths of all but the last column are 
  213. calculated from the DisplayWidth properties of the underlying TField 
  214. objects. The width of the last column (the only column in the single 
  215. column case), is simply the space that remains to the right of the 
  216. preceeding columns (or the entire with of the control in the single 
  217. column case).
  218.  
  219. An additional property, ListFieldIndex, specifies a zero-based index into the list of field names in the ListField property. The field given by ListFieldIndex is the "primary" field of the lookup control. For both list boxes and combo boxes, this is the field that controls incremental searching (the automatic searching that takes place when the user types the first few characters of a value). For the TDBLookupComboBox, ListFieldIndex also controls which field is displayed in the combo box.
  220.  
  221. When a TDBLookupListBox or TDBLookupComboBox control is attached to a 
  222. lookup field (the DataSource and DataField properties specify a lookup field), the ListFieldIndex property is ignored, and the "primary" field is always the ResultField of the underlying lookup field. Furthermore, when attached to a lookup field, if the ResultField of the underlying lookup field is not included in the list of columns given by ListField, the ResultField is automatically displayed as the first column.
  223.  
  224. You can choose not to provide a value for the DataSource property to TDBLookupListBox and TDBLookupComboBox. If you do not, then values returned in the KeyValues field can be examined and used in the controls' OnChange event.
  225.  
  226. Two additonal properties and two addtional events have been added to TDBLookupComboBox.
  227.  
  228. The DropDownWidth property specifies the width of the drop down list in pixels. A value of zero (the default) causes the drop down list to have the same width as the combo box.
  229.  
  230. The DropDownAlign property can be daLeft, daRight, or daCenter, and specifies whether the drop down list should be left aligned (the default), right aligned, or centered.
  231.  
  232. The OnDropDown event occurs immediately before the list drops down. It is a convenient place to modify the DropDownAlign, DropDownRows, and DropDownWidth properties.
  233.  
  234. The OnCloseUp event occurs immediately after the drop down list is closed.
  235.  
  236. p. 152
  237. The TDBGrid.Options.dgMultiSelect property was added to the TDBGrid component after the Database Application Developer's Guide went to print. If dgMultiSelect is True (the default), users can select multiple rows in a grid using the following techniques:
  238.  
  239. -- Shift + Arrow Keys
  240. -- Ctrl + Mouse clicks
  241.  
  242. Shift + Click is not supported.
  243.  
  244. Selected rows are maintained as bookmark strings in a TBookMarkList object. Use the following properties and methods to work with a bookmark list for a grid:
  245.  
  246. Property                              Purpose
  247. --------                              ----------------------------------
  248. SelectedRows.Count                    Determine the number of selected
  249.                                       rows.
  250. SelectedRows.CurrentRowSelected       True if the current row is one of
  251.                                       the selected rows.                                                                                                                                                         
  252. SelectedRows.Refresh                  Iterate through bookmark list to
  253.                                       make sure each selected row still
  254.                                       exists in the dataset; delete
  255.                                       bookmarks that no longer point to
  256.                                       valid rows. Returns True if
  257.                                       bookmarks are deleted, False 
  258.                                       otherwise.
  259. SelectedRows.Clear                    Clear all bookmarks. Cancel
  260.                                       selection.
  261. SelectedRows.Delete                   Deletes selected rows without
  262.                                       asking user for confirmation.
  263.                                       Ctrl+Delete also deletes selected
  264.                                       rows, but prompts first for
  265.                                       confirmation if dgConfirmDelete is
  266.                                       True.                                                                          
  267. SelectedRows.Find                     Finds a specific bookmark string.
  268. SelectedRows.IndexOf                  Returns the index of a specified
  269.                                       bookmark, if it exists.
  270.  
  271. In a multi-user environment keep in mind that the more rows that are selected, and the longer the rows remain selected, the greater the chance that bookmarks may no longer point at valid rows in a dataset. Use TDBGrid.SelectedRows.Refresh to eliminate invalid bookmarks in these cases.
  272.  
  273. DO NOT use the GoToBookMark method of TTable to move to a selected bookmark in a grid. Use TDBGrid.SelectedRows.Find instead.
  274.  
  275. DO NOT stream bookmark strings.
  276.  
  277. To read or write the current set of bookmarks for a dataset, use the TDataSet.BookMark property.
  278.  
  279. p. 153
  280. The ability to edit in a grid is also determined by the settings for TDBGrid.Options.dgEditing and TDBGrid.Options.dgAlwaysShowEditor. To enable editing, TDBGrid.Options.dgEditing must be True (the default).
  281. To indicate that editing is enabled, TDBGrid.Options.dgAlwaysShowEditor must also be True. Note that if dgAlwaysShowEditor is False, editing is still possible.
  282.  
  283. p. 156
  284. TDBCtrlGrid is a property of type TDBCtrlGridOrientation.
  285.  
  286. pp. 157-158
  287. TReport properties that used to return Boolean values now return 0 on success, or a ReportSmith error number on failure.
  288.  
  289. p. 161
  290. The parameter for TDatabase.ApplyUpdates is now an array of datasets.
  291.  
  292. pp. 164-165
  293. A new read-only, run-time only Boolean property, TDataSet.UpdatesPending, indicates if there are any records in the update cache that have not been flushed to the database.
  294.  
  295. True: Updates are pending.
  296. False: No updates are pending.
  297.  
  298. p. 170
  299. Some keyboard shortcuts for the TUpdateSQL editor have changed or have been removed.
  300.  
  301. pp. 179-180
  302. Tables 16.2, 16.3, and 16.4 describe the physical data type translations used by TBatchMove when moving data among different databases supported by the BDE. Some of the information in these tables has changed. For example, when moving a dBASE binary field to Paradox, the corresponding Paradox field is a graphics field, not a binary field. For updated translation information, see the Borland Database Engine Online Reference.
  303.  
  304. Library Reference
  305. =================
  306.  
  307. Several changes to the VCL and the RTL occurred after the Library 
  308. Reference went to print. Most of these changes are recorded in the online 
  309. VCL help file. The following changes are noted for their significance.
  310.  
  311. TBCDField.CurrFormat
  312. --------------------
  313.  
  314. The CurrFormat property of a TBCDField has been renamed to Currency, and corresponds to the Currency property of a TFloatField or TCurrencyField.
  315.  
  316. VarToStr standard function
  317. --------------------------
  318.  
  319. A new function called VarToStr has been added to the System unit.
  320.  
  321.   function VarToStr(const V: Variant): string;
  322.  
  323. VarToStr converts the given variant to a string. If the variant is Null, an empty string is returned. VarToStr is useful in situations where you want to display a variant value as a string and do not care if the variant is Null, for example
  324.  
  325.   Edit1.Text := VarToStr(OrdersCustNo.Value);
  326.  
  327. where OrdersCustNo is a field in a database table. Without a call to VarToStr, the above assignment will raise an exception if the field contains Null, since a Null variant cannot be converted to any other type.
  328.  
  329. TDBCtrlGrid.Orientation
  330. -----------------------
  331.  
  332. This property requires a value of type TDBCtrlGridOrientation. Valid values are goHorizontal and goVertical.
  333.  
  334. TReport Properties
  335. ------------------
  336. TReport properties that used to return Boolean values now return 0 on success, or a ReportSmith error number on failure.
  337.  
  338.  
  339. InterBase Documentation
  340. =======================
  341.  
  342. For information about updates and corrections to the InterBase documentation that is provided with the Delphi Client/Server Suite and Delphi Developer, see the READIB.TXT file in \Borland\IntrBase.
  343.  
  344. SQL Links Documentation
  345. =======================
  346.  
  347. For information about updates and corrections to the SQL Links 
  348. documentation, see the READLINK.TXT file in \Borland\Common Files\BDE. 
  349.  
  350. ========================================================================
  351. 3. ONLINE HELP
  352.  
  353. The following help files are provided as part of Delphi 2.0.
  354. All file locations are relative to a default installation path.
  355.  
  356. Help File              Contents
  357. ---------              --------
  358. \Bde\Bdecfg32.hlp      BDE Configuration Utility help.
  359. \Bde\Localsql.hlp      BDE Local SQL help.
  360. \Help\Cwg.hlp          Online Component Writer's Guide.
  361. \Help\Dbexplor.hlp     SQL Explorer and Database Explorer help.
  362. \Help\Obpascal.hlp     Online Object Pascal Language Guide.
  363. \Help\Vcl.hlp          Online Library Reference.
  364. \Help\Imagedit.hlp     Image Editor help.
  365. \Help\Guide.hlp        Microsoft Programmer's Reference.
  366. \Help\Kbase.hlp        Microsoft Knowledge Base help.
  367. \Help\Mapi.hlp         Microsoft Mail API help.
  368. \Help\Mm.hlp           Microsoft Multi-media help.
  369. \Help\Ole.hlp          Microsoft OLE help.
  370. \Help\Opengl.hlp       Microsoft Open Graphics Library help.
  371. \Help\Rpc.hlp          Microsoft Remote Procedure Call API help.
  372. \Help\Win32.hlp        Microsoft Windows 32 API help.
  373. \Help\Win32s.hlp       Microsoft Windows 32s API help.
  374. \Help\Winsight.hlp     Winsight help.
  375. \Help\Tools\hcw.hlp    Microsoft help compiler help.
  376. \Quickrpt\Quickrpt.hlp Quick Reports help.
  377.  
  378. Additional files included in Delphi Developer and Delphi Client/Server 
  379. Suite. All file locations are relative to a default installation path.
  380.  
  381. Help File              Contents
  382. ---------              --------
  383. \Bde\Bde32.hlp         32-bit Borland Database Engine API help.
  384. \Help\ibctrls.hlp      InterBase controls help.
  385. \Help\Pvcs.hlp         PVCS and team development interface help.
  386.  
  387.  
  388. Additional files included in Delphi Delphi Client/Server Suite. All file locations are relative to a default installation path.
  389.  
  390. Help File              Contents
  391. ---------              --------
  392. \Bde\Sqllnk.hlp        SQL Links help.
  393. \Bde\Datapump.hlp      Data pump expert help.
  394. \Help\Vqb.hlp          Visual Query Builder help.
  395.  
  396.  
  397. The following section lists changes to the Library Reference, both printed and online.
  398.  
  399. VCL.HLP:
  400. ========
  401. This file contains last minute changes and updates to the Library Reference manual and help file. Use the Index and Search capabilities to examine components, methods, and properties for new information. The following list notes areas of change known not to be in VCL.HLP:
  402.  
  403. TClipBoard and TPrinter
  404. -----------------------
  405. These are now functions, not variables.
  406.  
  407. TBytesField and TVarBytesField
  408. ------------------------------
  409. These TField objects return a variant array of bytes in response to a Value or AsVariant reference. For TVarBytesField, the first two bytes indicate the length or size of the data, depending on the server.
  410.  
  411. VarArrayLock and VarArrayUnlock
  412. -------------------------------
  413. These functions now take a const parameter instead of a var parameter.
  414.  
  415. Support for BDE Input Request Callbacks
  416. ---------------------------------------
  417. A new unit, DBInpReq, is provided to support BDE input request callbacks. For more information about BDE input request callbacks, see the BDE online reference.
  418.  
  419. TDataSet.UpdatesPending property
  420. --------------------------------
  421. A new read-only, run-time only Boolean property, TDataSet.UpdatesPending, indicates if there are any records in the update cache that have not been flushed to the database.
  422.  
  423. True: Updates are pending.
  424. False: No updates are pending.
  425.  
  426. TDatabase.ApplyUpdates
  427. ----------------------
  428. The parameter for TDatabase.ApplyUpdates is now an array of datasets.
  429.  
  430. MainThreadID
  431. ------------
  432. MainThreadId, defined in CLASSES.PAS, is now public.
  433.  
  434. 4. DOCUMENTATION OMISSIONS
  435. ========================================================================
  436. The following list identifies additional objects that are not documented 
  437. in the VCL.HLP. When information is available elsewhere for an object, 
  438. the location of that information appears to the right of the object name. For example, some information is available as a separate DELPHI.HLP help topic, VCL Addendum.
  439.  
  440. Object                    Described in
  441. ------                    ------------
  442. TBits object              VCL Addendum help topic
  443. TThread object            VCL Addendum help topic
  444. TThreadMethod method      Mentioned under TThread methods in
  445.                           VCL Addendum help topic
  446. TThreadPriority property  Mentioned under TThread properties in
  447.                           VCL Addendum help topic
  448. EThread object execption  VCL Addendum help topic
  449. TConversion object        VCL Addendum help topic
  450. TChangeLink object        VCL Addendum help topic
  451. TDragControlObject object VCL Addendum help topic
  452. TDragObject object        VCL Addendum help topic
  453. TTraceFlagsType type      VCL Addendum help topic
  454. TLockType type            VCL Addendum help topic
  455. TOleContainer component   VCL Addendum help topic
  456. DropDownRows property     Database Application Developer's Guide
  457. KeyViol property          Database Application Developer's Guide
  458. TitleFont property        Database Application Developer's Guide
  459. TDataModule component     Database Application Developer's Guide
  460. FreeNotification method   MANUALS.TXT (this file)
  461. EMethodNotFound exception
  462. SetClipboard method
  463. TCustomHotKey component
  464. TAddMode type
  465. TAttributeType type
  466. TNodeState type
  467. TDrawingStyle type
  468. TOverlay type
  469. TOnServerYieldEvent type
  470. TTraceFlag type
  471. DragDrop method
  472. Dragging property
  473. ListVisible property
  474. ComponentState property
  475. DesignInfo property
  476. GetParentComponent method
  477. HasParent method
  478. DestroyComponents method
  479. Destroying method
  480. ControlState property
  481. ControlStyle property
  482. Broadcast method
  483. DisableAlign method
  484. EnableAlign method
  485. PaintTo method
  486. GetTabOrderList method
  487. Realign method
  488. Update method
  489. UpdateControlState method
  490. TFieldDataLink
  491. TComponentNameProperty object
  492. TPage component
  493. TDriveType type
  494. THintInfo type
  495. TShowHintEvent type
  496. TTimerMode type
  497. TFontCharset type
  498. CharsetToIdent method
  499. GetCharSetValues method 
  500. IdentToCharSet method
  501. TMaskedState method
  502. TPrinterCapabilities type
  503. TPrinterCapability type
  504. TPrinterState type
  505. SetPrinter method
  506. TLaunchType type
  507. BeginThread method
  508. EndThread method
  509. WideCharLenToString method
  510. WideCharLenToStrVar method
  511. WideCharToString method
  512. WideCharToStrVar methodX
  513. TDBCtrlPanel
  514.  
  515.